package com.example.yupao.common;


/**
 * 错误码
 *
 * @author 宝儿姐
 */
public enum ErrorCode {
    // 这里的错误码可以自定义, 自定义划分出更详细的错误

    // 每个常量都有三个关联的值：一个整数和一个字符串对。
    // 具体到PARAMS_ERROR(40000, "请求参数有误", "")，这是一个枚举常量的定义。
    // 它有一个名称PARAMS_ERROR，一个关联的整数40000，和两个关联的字符串："请求参数有误"和""。

    // 这是枚举常量
    // 400一般代表用户传递的参数或者其他有问题
    // description 为空, 以后调用的时候就可以用来写各种各样的描述信息了
    SUCCESS(0, "ok", ""),
    PARAMS_ERROR(40000, "请求参数有误", ""),
    NUll_ERROR(40001, "请求数据为空", ""),
    NOT_LOGIN(40100, "未登录", ""),
    NO_AUTH(40101, "无权限", ""),
    FORBIDDEN(40301, "禁止访问", ""),  // 可能是被封号了
    SYSTEM_ERROR(50000, "系统内部异常", "");

    private final int code;

    /**
     * 状态码信息
     */
    private final String message;

    /**
     * 状态码描述(详细)
     */
    private final String description;

    ErrorCode(int code, String message, String description) {
        this.code = code;
        this.message = message;
        this.description = description;
    }

    // 枚举值不支持 set 方法, 所以不能用 lombok @Data注解
    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    public String getDescription() {
        return description;
    }
}
